Основная цель работы — освоить синтаксис языка Julia для построения
графиков.
Задание
Используя Jupyter Lab, повторите примеры. При этом дополните
графики обозначениями осей координат, легендой с названиями траекторий,
названиями графиков и т.п.
Выполните задания для самостоятельной работы.
Основные пакеты для работы с графиками в Julia
Рассмотрим построение графика функции f(x) = (3x2 + 6x − 9)e−0,3x
разными способами:
Задание функции
Основные пакеты для работы с графиками в Julia
Задание функции
Основные пакеты для работы с графиками в Julia
График функции, построенный при помощи
gr()
Основные пакеты для работы с графиками в Julia
График функции, построенный при помощи
pyplot()
Основные пакеты для работы с графиками в Julia
График функции, построенный при помощи
unicodeplots()
Опции при построении графика
На примере графика функции sin(x) и графика разложения этой функции в
ряд Тейлора рассмотрим дополнительные возможности пакетов для работы с
графикой:
Опции при построении графика
График функции sin(x)
Опции при построении графика
График функции разложения исходной
функции в ряд Тейлора
Опции при построении графика
Графики исходной функции и её разложения
в ряд Тейлора
Опции при построении графика
Затем добавим различные опции для отображения на графике:
Добавления опций для графика
Опции при построении графика
Вид графиков после добавления опций при
их построении
Точечный график
Как и при построении обычного графика для точечного графика
необходимо задать массив значений х, посчитать или задать значения у,
задать опции построения графика:
График десяти случайных значений на
плоскости (простой точечный график)
Точечный график
Для точечного графика можно задать различные опции, например размер
маркера, его тип, цвет и и т.п.:
График пятидесяти случайных значений на
плоскости с различными опциями отображения (точечный график с
кодированием значения размером точки)
Точечный график
График пятидесяти случайных значений в
пространстве с различными опциями отображения (3-мерный точечный график
с кодированием значения размером точки)
Аппроксимация данных
Аппроксимация — научный метод, состоящий в замене объектов их более
простыми аналогами, сходными по своим свойствам.
Для демонстрации зададим искусственно некоторую функцию, в данном
случае похожую по поведению на экспоненту:
Аппроксимация данных
Пример функции
Аппроксимация данных
Аппроксимируем полученную функцию полиномом 5-й степени:
Пример аппроксимации исходной функции
полиномом 5-й степени
Пример траектории
Пример отдельно построенной
траектории
Полярные координаты
Приведём пример построения графика функции в полярных
координатах:
График функции, заданной в полярных
координатах
Параметрический график
Приведём пример построения графика параметрически заданной кривой на
плоскости:
Параметрический график кривой на
плоскости
Параметрический график
Параметрический график кривой в
пространстве
График поверхности
Для построения поверхности, заданной уравнением f(x, y) = x2 + y2,
можно воспользоваться функцией surface():
График поверхности (использована функция
surface())
График поверхности
График поверхности (использована функция
plot())
График поверхности
Сглаженный график
поверхности
График поверхности
График поверхности с изменённым углом
зрения
Линии уровня
Линией уровня некоторой функции от двух переменных называется
множество точек на координатной плоскости, в которых функция принимает
одинаковые значения. Линий уровня бесконечно много, и через каждую точку
области определения можно провести линию уровня.
С помощью линий уровня можно определить наибольшее и наименьшее
значение исходной функции от двух переменных. Каждая из этих линий
соответствует определённому значению высоты.
Поверхности уровня представляют собой непересекающиеся
пространственные поверхности.
Линии уровня можно построить, используя проекцию значений исходной
функции на плоскость:
Линии уровня
Линии уровня
Можно дополнительно добавить заливку цветом:
Линии уровня с заполнением
Векторные поля
Если каждой точке некоторой области пространства поставлен в
соответствие вектор с началом в данной точке, то говорят, что в этой
области задано векторное поле.
Векторные поля задают векторными функциями.
Векторные поля
График функции h(x, y) = x3 − 3x +
y2
Векторные поля
Линии уровня для функции h(x, y) = x3 −
3x + y2
Анимация
Технически анимированное изображение представляет собой несколько
наложенных изображений (или построенных в разных точках графиках) в
одном файле.
В Julia рекомендуется использовать gif-анимацию в pyplot().
Анимация
Статичный график поверхности
Анимация
Анимированный график
поверхности
Гипоциклоида
Гипоциклоида — плоская кривая, образуемая точкой окружности,
катящейся по внутренней стороне другой окружности без скольжения.
Построение большой окружности
гипоциклоиды
Гипоциклоида
Большая окружность
гипоциклоиды
Гипоциклоида
Для частичного построения гипоциклоиды будем менять параметр t:
Половина пути гипоциклоиды
Гипоциклоида
Добавляем малую окружность гипоциклоиды:
Малая окружность
гипоциклоиды
Гипоциклоида
Добавим радиус для малой окружности:
Малая окружность гипоциклоиды с
добавлением радиуса
Errorbars
В исследованиях часто требуется изобразить графики погрешностей
измерения.
Зададим исходные значения
Errorbars
График исходных значений
Errorbars
График исходных значений с
отклонениями
Errorbars
Поворот графика
Errorbars
Заполнение цветом
Errorbars
График ошибок по двум осям
Errorbars
График асимметричных ошибок по двум
осям
Использование пакета Distributions
Гистограмма, построенная по массиву
случайных чисел
Использование пакета Distributions
Гистограмма нормального
распределения
Подграфики
Определим макет расположения графиков. Команда layout принимает
кортеж layout = (N, M), который строит сетку графиков NxM. Например,
если задать layout = (4,1) на графике четыре серии, то получим четыре
ряда графиков:
Серия из 4-х графиков в ряд
Подграфики
Для автоматического вычисления сетки необходимо передать layout целое
число:
Серия из 4-х графиков в
сетке
Подграфики
Аргумент heights принимает в качестве входных данных массив с долями
желаемых высот. Если в сумме дроби не составляют 1,0, то некоторые
подзаголовки могут отображаться неправильно.
Серия из 4-х графиков разной высоты в
ряд
Подграфики
Можно сгенерировать отдельные графики и объединить их в один,
например, в сетке 2 × 2:
Объединение нескольких графиков в одной
сетке
Подграфики
Объединение нескольких графиков в одной
сетке
Подграфики
Разнообразные варианты представления
данных
Подграфики
Демонстрация применения сложного макета
для построения графиков
Самостоятельное выполнение
Решение задания №1
Самостоятельное выполнение
Решение задания №2
Самостоятельное выполнение
Решение задания №3
Самостоятельное выполнение
Решение задания №4
Самостоятельное выполнение
Решение задания №5
Самостоятельное выполнение
Решение задания №5
Самостоятельное выполнение
Решение задания №6
Самостоятельное выполнение
Решение задания №7
Самостоятельное выполнение
Решение задания №8
Самостоятельное выполнение
Решение задания №9
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №10
Самостоятельное выполнение
Решение задания №11
Самостоятельное выполнение
Решение задания №11
Самостоятельное выполнение
Решение задания №11
Самостоятельное выполнение
Решение задания №11
Самостоятельное выполнение
Решение задания №11
Самостоятельное выполнение
Решение задания №11
Выводы
В результате выполнения данной лабораторной работы мы освоили
синтаксис языка Julia для построения графиков.